home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-10-26 | 83.4 KB | 2,237 lines |
- Internet Draft Lixia Zhang
- Expires: April 1994 Xerox PARC
- File: draft-braden-rsvp-00.txt Bob Braden
- USC-ISI
- Deborah Estrin
- USC/USC-ISI
- Shai Herzog
- USC-ISI
- Sugih Jamin
- USC
-
- Resource ReSerVation Protocol (RSVP) --
-
- Version 1 Functional Specification
-
-
-
- Status of Memo
-
- This document is an Internet-Draft. Internet-Drafts are working
- documents of the Internet Engineering Task Force (IETF), its Areas,
- and its Working Groups. Note that other groups may also distribute
- working documents as Internet-Drafts.
-
- Internet-Drafts are draft documents valid for a maximum of six
- months. Internet-Drafts may be updated, replaced, or obsoleted by
- other documents at any time. It is not appropriate to use Internet-
- Drafts as reference material or to cite them other than as a "working
- draft" or "work in progress."
-
- Abstract
-
- This memo describes version 1 of RSVP, a resource reservation setup
- protocol designed for an integrated services Internet. RSVP provides
- receiver-initiated setup of resource reservations for multicast or
- unicast data flows, with good scaling and robustness properties.
-
- 1. Introduction
-
- This memo describes RSVP, a resource reservation setup protocol
- designed for an integrated services Internet [RSVP93,ISInt93]. A
- host invokes RSVP to request a specific quality of service (QoS) for
- a data stream. Hosts and routers use RSVP to deliver these requests
- to the routers along the path(s) of the data stream and to maintain
- router and host state to provide the requested service. This
- generally requires reserving resources in those nodes.
-
- At each router along the path, RSVP passes a new resource reservation
-
-
-
- Zhang, Braden et al Expires: April 1994 [Page 1]
-
-
-
-
- Internet Draft RSVP Specification October 1993
-
-
- request to an admission control routine, to determine whether there
- are sufficient resources available. If there are, the router reserve
- the resources and updates its packet scheduler and classifier control
- parameters to provide the requested QoS [ISInt93].
-
- The objectives and general justification for RSVP design are
- presented in [RSVP93,ISInt93]. In summary, RSVP has the following
- attributes:
-
- o RSVP supports multicast or unicast data delivery and adapts to
- changing group membership as well as changing routes.
-
- o RSVP is not itself a routing protocol, but it is designed to use
- the existing unicast and multicast routing protocols to
- determine the data path(s).
-
- o RSVP reserves resources for simplex data streams.
-
- o RSVP is receiver-oriented, i.e., the receiver of the data flow
- is responsible for the initiation and maintenance of the
- resource reservation.
-
- o RSVP maintains "soft-state" in the routers, enabling it to
- gracefully support dynamic membership changes and automatically
- adapt to routing changes.
-
- o RSVP provides several "reservation styles" with different
- reservation models to fit a variety of applications.
-
- o RSVP provides transparent operation through routers that do not
- support it.
-
- There are two aspects to RSVP, its reservation model and its protocol
- mechanisms. The RSVP protocol mechanisms provide a general facility
- for creating and maintaining distributed reservation state across a
- mesh of multicast delivery paths. These mechanisms treat the
- reservation parameters as opaque data, except for certain well-
- defined operations, and simply pass them to the traffic control
- modules (admission control, packet scheduler, and classifier) for
- interpretation. Although the RSVP protocol mechanisms are
- independent of the encoding of these parameters, the encodings must
- be defined in the reservation model that is presented to an
- application (see section 3.6.1).
-
- In order to efficiently accommodate heterogeneous receivers and
- dynamic group membership, RSVP makes the receivers responsible for
- requesting resource reservations [RSVP93]. Each receiver can request
- a reservation that is tailored to its particular requirement, and
-
-
-
- Zhang, Braden et al Expires: April 1994 [Page 2]
-
-
-
-
- Internet Draft RSVP Specification October 1993
-
-
- RSVP will deliver this request to the routers along the reverse
- path(s) to the sender(s).
-
- Sections 2.1 and 2.2 of this memo summarize the RSVP reservation
- model, while Sections 2.3 describes the protocol mechanisms.
- Sections 2.4 presents the host model, and Section 2.5 gives examples
- of both model and mechanism. Section 3 presents the functional
- specification for RSVP.
-
- 2. RSVP Overview
-
- 2.1 RSVP Reservation Model
-
- Figure 1 illustrates a single multicast distribution session. The
- arrows indicate data flowing from senders S1 and S2 to receivers
- R1, R2, and R3, and the cloud represents the distribution mesh
- created by the multicast routing protocol. Multicast distribution
- replicates each data packet from a sender Si and delivers a copy
- to every receiver Rj (whether a packet actually arrives at Rj
- depends on the specified QoS and perhaps upon congestion
- encountered along the path). Each sender Si and receiver Rj may
- correspond to a unique Internet host, or there may be multiple
- senders (e.g., multiple TV cameras) and/or receivers in a single
- host.
-
- The RSVP model for data distribution is simplex, i.e., it reserves
- resources in only one direction on a link, so that senders are
- logically distinct from receivers. However, the same host may act
- as both sender and receiver.
-
-
- Senders Receivers
- _____________________
- ( ) ===> R1
- S1 ===> ( Multicast )
- ( ) ===> R2
- ( distribution )
- S2 ===> ( )
- ( by Internet ) ===> R3
- (_____________________)
-
- Figure 1: Multicast Distribution Session
-
-
- All data packets in a session are addressed to the same IP
- destination address DestAddress. For multicast delivery,
- DestAddress is the multicast group address to which the data is
- addressed, and the receivers will have all "joined" this multicast
-
-
-
- Zhang, Braden et al Expires: April 1994 [Page 3]
-
-
-
-
- Internet Draft RSVP Specification October 1993
-
-
- group. For unicast delivery, DestAddress is simply the unicast
- address of the single receiver. RSVP identifies a session by
- DestAddress plus a 32-bit stream identifier called the destination
- stream id (DestSID). We use the term session socket for the
- (DestAddress, DestSID) pair that defines a session. RSVP treats
- each session independently. In the rest of this document, a
- particular session (hence, session socket) is always implied even
- if not stated.
-
- If a particular sender's flow arriving at a router has no
- corresponding reservation in place, the router will either drop
- the packets from the flow or send them using a best-effort QoS.
- This choice is controlled by each sender.
-
- Depending upon the reservation style and the state already in
- place for the session, a new or modified reservation request may
- result in a call to admission control. If an admission control
- call fails, the reservation is rejected and an RSVP error message
- is sent downstream to the receiver(s) responsible for it.
-
- A single RSVP resource reservation request is defined by a
- flowspec together with a filterspec; this pair is called a Flow
- Descriptor. The flowspec specifies the desired QoS in a
- quantitative manner, e.g., the allowable delay, the average
- bandwidth, the maximum burstiness, etc [ISInt93,IServ93]. It is
- used to parametrize the packet scheduling mechanism in the router
- or host. The filterspec defines the set of data packets to
- receive this service.
-
- A flowspec is opaque to RSVP. However, given a pair of flowspecs
- Fls1 and Fls2, RSVP needs to be able to: (1) determine whether
- they are identical, (2) determine whether Fls1 ">" Fls2, or that
- they cannot be compared, and (3) find a third flowspec Fls3 that
- dominates both (Fls3 ">" Fls1 and Fls3 ">" Fls2), even if Fls1 and
- Fls2 cannot be compared. A flowspec may be a complex multi-
- dimensional vector; the relationship Fls1 ">" Fls2, when it is
- defined, indicates that Fls1 represents at least as strict a
- request (and hence represents at least as large a resource
- commitment) as Fls2.
-
- The data packets selected by a particular filterspec will
- presumably be all be addressed to DestAddress. The filterspec may
- also select data packets only from particular senders Si; the set
- of senders selected by a particular filter is referred to as the
- "scope". A filter may further reduce the data packet subset based
- on flow demultiplexing fields such as a UDP port, or perhaps on
- some hierarchical encoding bits within the application layer.
-
-
-
-
- Zhang, Braden et al Expires: April 1994 [Page 4]
-
-
-
-
- Internet Draft RSVP Specification October 1993
-
-
- 2.2 Reservation Styles
-
- RSVP has a number of distinct "reservation styles", which
- determine the precise reservation model for applications. The
- following reservation styles have been defined so far; others may
- be introduced in the future.
-
- 1. Wildcard-Filter
-
- Using the Wildcard-Filter (WF) style, a receiver creates a
- single reservation, or resource "pipe", along each link,
- shared among all senders for the given session. The size of
- this "pipe" is the maximum of the resource requests for that
- link from all receivers, independent of the number of senders
- using it.
-
- The term `wildcard' refers to a filter scope that implicitly
- selects all senders, inplicitly extending to new senders as
- soon as they start sending to the group.
-
- 2. Fixed-Filter
-
- Using the Fixed-Filter (FF) style, each receiver selects the
- particular sender whose data packets it wants to receive, and
- it specifies a corresponding flowspec for that sender.
-
- Receivers that select the same sender will share the
- reservation for that sender (indeed, due to multicasting
- there is only one stream of data packets from any Si in a
- particular router, regardless of the number of receivers Rj
- downstream). The shared reservation for Si will be greater
- than (in the sense of ">" as discussed earlier) or equal to
- all of the individual flowspecs from receivers Rj that
- selected Si.
-
- However, reservations for different senders are distinct;
- they do NOT share a common pipe. The total reservation on a
- link for a given session is the sum over the reservations for
- different senders.
-
- A Fixed-Filter reservation request from a particular receiver
- Rj generally contains a list of Flow Descriptors, each
- consisting of a filterspec (specifying some sender Si) and a
- corresponding flowspec. If a receiver using the FF
- reservation style changes its sender selection during the
- session, this is treated as a new reservation that is subject
- to admission control and may fail. The receiver may also
- modify the flowspecs, again subject to admission control.
-
-
-
- Zhang, Braden et al Expires: April 1994 [Page 5]
-
-
-
-
- Internet Draft RSVP Specification October 1993
-
-
- 3. Dynamic-Filter
-
- Using the Dynamic-Filter (DF) style, each receiver creates N
- distinct reservations to carry flows from up to N different
- senders. A DF style reservation also specifies a list of K
- filterspecs (0 <= K <= N), defining particular senders to use
- these reservations, as well as a common flowspec. Like the
- FF style, the DF style causes distinct reservations for
- different senders.
-
- A later DF reservation from the same receiver may specify the
- same value of N and the same common flowspec but a different
- selection of particular senders, without a new admission
- control check. This is known as channel switching, in
- analogy with a television set. Each DF style reservation may
- be said to be "owned" by the receiver that established it and
- is permitted to switch channels (change senders) used by that
- reservation.
-
- If a receiver using the DF reservation style changes the
- number of distinct reservations N or the common flowspec,
- this is treated as a new reservation that is subject to
- admission control and may fail. Those data packets for the
- same session socket but from senders that are not currently
- selected may either be dropped or simply sent best-effort.
-
- The essential difference between the FF and DF styles is that the
- latter allows dynamic channel switching without admission control.
- Once a DF-style reservation has been made, the receiver may switch
- channels without danger of an admission control failure due to
- limited resources (unless the route changes to a lower-capacity
- path or new senders appear).
-
- In order to provide admission-free channel switching, the DF style
- must cause the routers must reserve the requested bandwidth for
- all the possible senders Si, even though some of this bandwidth
- may be unused at any one time, or always. DF reservations may
- therefore have a significant cost to the Internet in under-
- utilized reservations.
-
- Wildcard-Filter reservations are appropriate when the total
- bandwidth required is independent of the number of senders. This
- is true for audio conferences, where a limited number of people
- talk at once. Thus, each receiver might issue a Wildcard-Filter
- reservation for twice one audio channel (to allow some over-
- speaking). On the other hand, the Fixed-Filter and Dynamic-Filter
- styles create independent reservations for the flows from
- different senders; this is required for video signals, whose
-
-
-
- Zhang, Braden et al Expires: April 1994 [Page 6]
-
-
-
-
- Internet Draft RSVP Specification October 1993
-
-
- `silence' periods are typically uncoordinated among different
- senders.
-
- 2.3 RSVP Protocol Mechanisms
-
- 2.3.1 RSVP Messages
-
- RSVP messages are sent as IP datagrams; thus, RSVP occupies the
- place of a transport protocol in the protocol stack. However,
- like ICMP and IGMP, RSVP is really an Internet control
- protocol; it does not carry any application data, and its
- messages are processed by the routers in the path.
-
- Each receiver host sends RSVP reservation, or RESV, messages
- into the Internet, carrying Flow Descriptors requesting the
- desired reservation; see Figure 2. These reservation messages
- must follow the reverse of the routes the data packets will
- use, all the way upstream to all the send that lie within the
- scope of active reservations. These RESV messages are finally
- delivered to the sender hosts, so that the senders can set up
- appropriate Traffic Control parameters for the first hop.
-
- In order to route the RESV messages in the reverse direction
- from each receiver to all selected senders for a given session
- socket, each sender must transmit RSVP PATH messages forward
- along the uni-/multicast routes provided by the routing
- protocol(s). These Path messages store path state in all the
- intermediate routers, effectively combining all the routing
- trees given by the routing protocol for the same DestAddress.
-
-
- Sender Receiver
- _____________________
- Path --> ( )
- Si =======> ( Multicast ) Path -->
- <-- Resv ( ) =========> Rj
- ( distribution ) <-- Resv
- (_____________________)
-
- Figure 2: RSVP Messages
-
-
-
- The minimum information content of a PATH message is a list of
- sender IP addresses, since this is required for routing RESV
- messages. However, PATH messages may carry the following
- additional information:
-
-
-
-
- Zhang, Braden et al Expires: April 1994 [Page 7]
-
-
-
-
- Internet Draft RSVP Specification October 1993
-
-
- o A template describing the format of data packets that the
- sender will originate.
-
- This template takes the form of two bitstrings forming a
- (value, mask) pair. Zero mask bits represent "don't care"
- (variable) bits in data packets. If present, this
- template is used by RSVP to validate the filters in a RESV
- message. Without such a template in the path state, there
- will be no feedback (except poor service) to the receiver
- that sets an impossible filter by mistake.
-
- o A flowspec defining an upper bound on the traffic that
- will be generated.
-
- This flowspec can be used by RSVP to prevent over-
- reservation on the non-shared links starting at the sender
- [RSVP93].
-
- A (template, flowspec) pair in a PATH message is called a
- Sender Descriptor.
-
- 2.3.2 Soft State
-
- To maintain reservation state, RSVP uses "soft state" in the
- router and host nodes. RSVP soft state is created and
- maintained in two directions by PATH and RESV messages. It is
- periodically refreshed by messages that are identical to the
- message that established the state, and it is removed at each
- node by a timer-driven cleanup procedure if no refresh message
- is received within a cleanup timeout interval. If a route
- changes, the next copy of the message will initialize the state
- on the new route, while the state on the now-unused segment of
- the route will time out. Thus, whether a message is "new" or a
- "refresh" is determined separately for each message at each
- node, depending upon the state at that node. (This document
- will use the term "refresh message" in this effective sense, to
- indicate an RSVP message that does not modify the existing
- state at the node in question.)
-
- RSVP sends its messages as IP datagrams, without reliable
- delivery. If a reservation request fails, an RSVP error
- message is returned to the receiver; however, RSVP sends no
- positive acknowledgment messages to indicate success. Periodic
- transmission of refresh messages by hosts and routers should
- replace any lost RSVP messages.
-
- If the set of senders Si or receivers Rj changes, or if any of
- the reservation requests change, the RSVP state is adjusted
-
-
-
- Zhang, Braden et al Expires: April 1994 [Page 8]
-
-
-
-
- Internet Draft RSVP Specification October 1993
-
-
- accordingly. To modify a reservation, a receiver simply starts
- sending the new values; it is not necessary to "close" the old
- reservation first. RSVP believes the latest PATH and RESV
- messages (ignoring the possibility of reordering).
-
- When a RESV message is received at a router or sender host, the
- RSVP module checks whether the message is a new or modifedi
- reservation request or whether it simply refreshes an existing
- reservation. A new or modified request is passed to the
- admission control module for a decision. If the reservation is
- accepted, RSVP sets up (or modifies) the reservation and filter
- state. It also forwards the RESV message to the next reverse-
- hop router(s) or sender host(s), using the path state. If the
- request is rejected, RSVP discards the Resv message and returns
- a RSVP error message to the receiver host that originated it.
- If the modification replaces some previous state, RSVP may
- immediately remove the old state, or it may simply let the old
- state time out since it is no longer being refreshed.
-
-
- Previous Incoming Outgoing
- Hops Interfaces Interfaces
-
- ______ _____________________
- | | Path --> | | Path -->
- | |-----------| |---------------
- |______| <-- Resv | | <-- Resv
- data --> | | data -->
- | Router |
- ______ | |
- | | Path --> | | Path -->
- | |-----------| |---------------
- |______| <-- Resv | | <-- Resv
- data --> |_____________________| data -->
-
- Figure 3: Router Using RSVP
-
-
- Figure 3 illustrates the model of a router used by RSVP. The
- data arrives from a previous hop through a corresponding
- incoming interface and departs through an outgoing interface.
- The incoming interfaces shown in Figure 3 may be physical
- interfaces (e.g., to point-to-point links), or they may be
- logical interfaces, multiple paths using the same physical
- interface to a shared medium (e.g., an Ethernet). Output is
- designated by the outgoing interface rather than by a "next
- hop" address to be consistent with IP multicast routing. Since
- the same host may be both sender and receiver for a given
-
-
-
- Zhang, Braden et al Expires: April 1994 [Page 9]
-
-
-
-
- Internet Draft RSVP Specification October 1993
-
-
- session, the same physical interface may act in both the
- incoming and outgoing roles.
-
- 2.3.3 Merging RSVP Messages
-
- To control its protocol overhead, RSVP supports merging of
- multiple PATH and RESV messages for the same session socket.
- Those messages that cause a state change are forwarded without
- delay, while the rest may be "merged" into fewer messages,
- perhaps only one. Merging requires synchronization among the
- messages being merged. This is accomplished by saving the
- state of received messages, dropping the messages, and
- periodically generating and forwarding cumulative messages in
- their place. Thus, refresh messages are created hop-by-hop, at
- a rate determined by the refresh period.
-
- Messages that modify the state in a node ("new" messages) must
- be forwarded without delay. Thus, the refresh period does not
- affect the rate at which new state propagates from end to end.
-
- For PATH messages, merging implies collecting together the
- Sender Descriptors from multiple incoming messages into a
- single outgoing PATH message. For RESV messages, merging
- generally implies that only the essential (e.g., the largest)
- refresh reservation messages need be forwarded once per refresh
- period; redundant messages can be dropped. A successful
- reservation request will propagate as far as the closest point
- along the sink tree to the sender(s) where a reservation level
- equal or greater than that being requested has been made. At
- that point, the merging process will drop it in favor of a
- larger reservation.
-
- As a result of merging, the number of RSVP control messages
- will increase less than linearly with the number of senders and
- receivers in a session. There is no merging across sessions,
- however, so the number of RSVP messages will increase linearly
- with the number of sessions.
-
- The refresh period and the cleanup timeout must obey some
- general principles.
-
- A. The cleanup timeout interval should be long enough to
- avoid reservation-flapping due to route-flapping.
-
- If route flapping does occur, persistent state will
- allow duplicate reservations to be created along the
- alternate paths. This duplication is desirable to
- prevent interruptions of service quality due to route
-
-
-
- Zhang, Braden et al Expires: April 1994 [Page 10]
-
-
-
-
- Internet Draft RSVP Specification October 1993
-
-
- flapping.
-
-
- B. The refresh period should be short enough in order to
- adapt quickly to route changes.
-
-
- C. The refresh period must be long enough to control
- RSVP overhead.
-
- Applications may differ in their sensitivity to outages, and
- should be able to have some control over the refresh period for
- their session state.
-
- 2.4 Host Model
-
- Before a session can be created, the session socket (comprised of
- DestAddress and DestSID) must be assigned and communicated to all
- the senders and receivers by some out-of-band mechanism. In order
- to join an RSVP session, the end systems perform the following
- actions.
-
- H1 A receiver joins the multicast group specified by
- DestAddress.
-
-
- H2 A potential sender starts sending RSVP PATH messages to
- the DestAddress.
-
-
- H3 A receiver listens for PATH messages.
-
-
- H4 A receiver starts sending appropriate RESV messages,
- specifying the desired Flow Descriptors.
-
- There are several synchronization issues.
-
- o Suppose that a new sender starts sending data but there are
- no receivers. There will be no multicast routes beyond the
- host (or beyond the first RSVP-capable router) along the
- path; the data will be dropped at the first hop until
- receivers(s) do appear (assuming a multicast routing protocol
- that "prunes off" or otherwise avoids unnecessary paths).
-
- o Suppose that a new sender starts sending PATH messages (H2)
- and immediately starts sending data, and there are receivers
- but no RESV messages have reached the sender yet (e.g.,
-
-
-
- Zhang, Braden et al Expires: April 1994 [Page 11]
-
-
-
-
- Internet Draft RSVP Specification October 1993
-
-
- because its PATH messages have not yet propagated to the
- receiver(s)). Then the initial data may arrive at receivers
- without the desired QoS.
-
- o If the receiver starts sending RESV messages (H4) before any
- PATH messages have reached it, RSVP will return ERR messages.
-
- The receiver may simply choose to ignore such error messages,
- or it may avoid them in one of two ways. (1) It may
- synchronize in a higher-level protocol, e.g., a conference
- control protocol might ensures that RESV messages are not
- sent by any participant until all have started to send PATH
- messages. (2) The receiver may synchronize using RSVP
- messages, by waiting for PATH messages before sending RESV
- messages.
-
- The interface (API) between RSVP and an application is not defined
- in this protocol spec, as it may be host-system dependent.
- However, Section 3.6.2 discusses the general requirements and
- presents a generic API.
-
- 2.5 Examples
-
- Figure 4 shows schematically a router with two previous hops
- (labeled a and b) and two outgoing interfaces (labeled c and d).
- There are three upstream senders; packets from sender S1 (S2 and
- S3) arrive through previous hop a (b, respectively). There are
- also three downstream receivers; packets bound for R1 and R2 (R3)
- are routed via outgoing interface c (d, respectively).
-
- ________________
- a | | c
- ( S1 ) ---------->| |----------> ( R1, R2)
- | Router |
- b | | d
- ( S2,S3 ) ------->| |----------> ( R3 )
- |________________|
-
- Figure 4: Router Configuration
-
-
-
- We use the following notation for a RESV message sent by receiver
- Rj:
-
- 1. Wildcard-Filter
-
- WF( Rj; *{r})
-
-
-
- Zhang, Braden et al Expires: April 1994 [Page 12]
-
-
-
-
- Internet Draft RSVP Specification October 1993
-
-
- Here "*{r}" represents a Flow Descriptor with a "wildcard"
- filter (choosing all senders) and a flowspec of quantity r.
- For simplicity we imagine here that flowspecs are one-
- dimensional, defining for example the average bandwidth, and
- state them as a multiple of some unspecified base resource
- quantity B.
-
- 2. Fixed-Filter
-
- FF( Rj; S1{r1}, S2{r2}, ...)
-
- This message carries a list of sender, flowspec pairs, i.e.,
- Flow Descriptors.
-
- 3. Dynamic-Filter
-
- DF( nB, Rj; ) or DF( nB, Rj; S1, ...)
-
- This message carries the number n of channels to be reserved,
- each channel having bandwidth B. It also has an list,
- perhaps empty, of senders. Since each channel must carry the
- same bandwidth B, we omit flowspecs after the semicolon.
-
- Figure 5 shows Wildcard-Filter reservations. The "Receive" column
- shows the RESV messages received over outgoing interfaces c and d,
- and the "Reserve" column shows the resulting reservation state for
- each interface. The "Send" column shows the RESV messages
- forwarded to previous hops a and b. In the "Reserve" column, each
- box represents one reservation "channel", with the corresponding
- filter.
-
- As a result of merging, only the message with the largest flowspec
- is forwarded upstream to each previous hop. When the flowspecs
- are equal, the message whose receiver IP address is numerically
- larger is sent. Here we assume that IPaddr(R1) > IPaddr(R3) so
- the R1 reservation is sent upstream. Merging will therefore
- delete the messages enclosed in square brackets. In the outgoing
- interface c, there is a common reserved channel shared by R1 and
- R2.
-
-
-
-
-
-
-
-
-
-
-
-
- Zhang, Braden et al Expires: April 1994 [Page 13]
-
-
-
-
- Internet Draft RSVP Specification October 1993
-
-
-
- |
- Send | Reserve Receive
- |
- | ________
- WF(R1; *{3B}) <- (a) | (c) | *{3B} | (c) <- WF(R1; *{3B})
- | |________|
- [ WF(R2; *{B}) <- (a)] | [ (c) <- WF(R2; *{B}) ]
- |
- [ WF(R3; *{B}) <- (a)] |
- ------------------------|------------------------------------------
- | _______
- WF(R1; *{3B}) <- (b) | (d) | *{B} | (d) <- WF(R3; *{B})
- | |_______|
- [ WF(R2; *{B}) <- (b)] |
- |
- [ WF(R3; *{B}) <- (b)] |
-
- Figure 5: Wildcard-Filter Reservation Example
-
-
-
- Figure 6 shows Fixed-Filter style reservations. Merging takes
- place among the flow descriptors (i.e., filter spec, flowspec
- pairs); the unmerged messages are not shown. For example, the
- message forwarded to previous hop b, towards S2 and S3, contains
- flow descriptors received from outgoing interfaces c and d.
- Similarly, when FF(R2; S1{B}) and FF(R3; S1{3B}) are merged, the
- result is the single message FF(R3; S1{3B}) sent to previous hop
- a, towards S1.
-
- For each outgoing interface, there is a private reservation for
- each source that has been requested, but this private reservation
- is shared among the receivers that made the request.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Zhang, Braden et al Expires: April 1994 [Page 14]
-
-
-
-
- Internet Draft RSVP Specification October 1993
-
-
-
- |
- Send | Reserve Receive
- |
- | ________
- FF(R3; S1{3B}) <- (a) | (c) | S1{B} | (c) <- FF(R2; S1{B}, S2{5B})
- | |________|
- | | S2{5B} |
- | |________|
- ------------------------|---------------------------------------------
- | ________
- <- (b) | (d) | S1{3B} | (d) <- FF(R3; S1{3B}, S3{B})
- FF(R3; S2{5B}, S3{B}) | |________|
- | | S3{B} |
- | |________|
-
- Figure 6: Fixed-Filter Reservation Example
-
-
-
- Figure 7 shows an example of Dynamic-Filter reservations. Within
- the reservation boxes, the receiver that owns the reservation is
- shown followed by a colon. R2 and R3 have made reservations for
- which there is currently no filter, as indicated by a filter of
- `?'.
-
- |
- Send | Reserve Receive
- |
- | ___________
- DF(2, R1; S1) <- (a) | (c) | R1: S1{B} | (c) <- DF(2, R1; S1, S2)
- | |___________|
- DF(2, R2; ) <- (a) | | R1: S2{B} | (c) <- DF(2, R2; S2)
- | |[R2: S2{B}]|
- DF(2, R3; S1) <- (a) | |___________|
- | | R2: ?{B} |
- | |___________|
- ------------------------|---------------------------------------------
- | ___________
- DF(2, R1; S2) <- (b) | (d) | R3: S1{B} | (d) <- DF(2, R3; S1)
- | |___________|
- DF(2, R2; S2) <- (b) | | R3: ?{B} |
- | |___________|
- DF(2, R3; ) <- (b) |
-
- Figure 7: Dynamic-Filter Reservation Example
-
-
-
-
-
- Zhang, Braden et al Expires: April 1994 [Page 15]
-
-
-
-
- Internet Draft RSVP Specification October 1993
-
-
- Both R1 and R2 have requested reservations for S2. Since there is
- only one stream of packets from S2, only R1's reservation is
- actually made. However, the router keeps a record of R2's request
- as a "hidden reservation", shown in square brackets. If R1
- removes its reservation for S2, the node must check for a hidden
- reservation for the same source, so that it can reassign the
- channel to R2 without waiting for R2's next refresh. This use of
- hidden reservations for Dynamic-Filter reservations is necessary
- to avoid new admission control decisions (which might fail) and to
- ensure continuity of service.
-
- A router should not reserve more Dynamic-Filter channels than the
- number of upstream sources. Thus, in Figure 7, both R1 and R2
- request that admission control admit two channels worth of
- bandwidth. However, there are only 3 sources upstream from this
- point, so these requests are satisfied with a total of 3 channel
- reservations.
-
- Since there is only one source upstream from previous hop b, the
- first parameter of the DF message (the count of channels to be
- reserved) could be decreased to 1 in the forwarded reservations.
- However, this is unnecessary because the routers upstream will
- reserve only one channel, regardless.
-
- We note that Dynamic-Filter requests cannot be merged, since they
- tie each reservation to a particular owner. A node is permitted
- to include Flow Descriptors that are not relevant to the path
- (i.e., not upstream along that path). Thus, in Figure 7, the node
- could forward each of the three RESV messages exactly as received
- from c and d, to both previous hops a and b; the previous hop
- would ignore the irrelevant Flow Descriptors in each case.
-
- As another example of these concepts, Figure 8 shows the previous
- hop router on incoming interface (a) in Figure 7. Here there are
- two hidden reservations.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Zhang, Braden et al Expires: April 1994 [Page 16]
-
-
-
-
- Internet Draft RSVP Specification October 1993
-
-
-
- Send | Reserve Receive
- | ___________
- DF(2, R1; S1) <- (a) | (c) | R1: S1{B} | (c) <- DF(2, R1; S1)
- | | |
- DF(2, R2; ) <- (a) | |[R2: ?{B}]| (c) <- DF(2, R2; )
- | | |
- DF(2, R3; S1) <- (a) | |[R2: S1{B}]| (c) <- DF(2, R3; S1)
- | |___________|
-
- Figure 8: Previous Hop to Figure 7 interface (a).
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Zhang, Braden et al Expires: April 1994 [Page 17]
-
-
-
-
- Internet Draft RSVP Specification October 1993
-
-
- 3. Functional Specification
-
- There are currently three types of RSVP messages: Path, Resv, and
- ERR. A fourth type, TEARDOWN, is under consideration.
-
- 3.1 Message Formats
-
- 3.1.1 Path Message
-
- 0 1 2 3
- +-------------+-------------+-------------+-------------+
- | Vers | Type | Flags | RSVP Checksum |
- +-------------+-------------+-------------+-------------+ ---
- | DestAddress | Session
- +-------------+-------------+-------------+-------------+
- | DestSID | Socket
- +-------------+-------------+-------------+-------------+ ---
- | Refresh Period |
- +-------------+-------------+-------------+-------------+
- | State TTL Time |
- +-------------+-------------+-------------+-------------+
- | Previous Hop Address |
- +-------------+-------------+-------------+-------------+
- | /////////////// | SD Count |
- +-------------+-------------+-------------+-------------+
- | Sender Descriptor List |
- +-------------+-------------+-------------+-- ...
-
-
-
- IP Fields:
-
- Protocol
-
- 46
-
- IP Source Address
-
- The IP address of the host or router sending this
- message.
-
- IP Destination Address
-
- The IP address of the data destination (DestAddress).
-
- RSVP Fields:
-
- Vers
-
-
-
- Zhang, Braden et al Expires: April 1994 [Page 18]
-
-
-
-
- Internet Draft RSVP Specification October 1993
-
-
- Version number. This is version 1.
-
- Type
-
- 1 = Path Message
-
- Flags
-
- 1 = No-Refresh
-
- A PATH message received with this flag bit on
- will be forwarded with no (further) merging, the
- path state TTL timer(s) will not be reset (as if
- no refresh message had been received), and a
- refresh message will not be generated during the
- current refresh period for the senders listed,
- However, if there is no path state a PATH
- message containing this flag bit will be
- ignored.
-
- For further discussion of the use of this bit,
- see Section 3.3 below.
-
- 8 = Drop
-
- If this flag bit is on then data packets will be
- dropped when they are destined to this session
- but their sender is not currently selected by
- any filter. If this flag bit is off, such data
- packets will still be forwarded but without a
- reservation, i.e., using a best-effort class.
-
- RSVP Checksum
-
- A standard TCP/UDP checksum, over the contents of the
- RSVP message with the checksum field replaced by
- zero.
-
- DestAddress, DestSID
-
- The IP address and stream Id identifying the session,
- i.e., the session socket.
-
- Previous Hop Address
-
- The IP address of the interface through which the
- host or router last forwarded this message.
-
-
-
-
- Zhang, Braden et al Expires: April 1994 [Page 19]
-
-
-
-
- Internet Draft RSVP Specification October 1993
-
-
- The Previous Hop Address is used to support reverse-
- path forwarding of RESV messages. This field is
- initialized by a sender to its IP address (see IP
- Source Address above) and must be updated at each
- router hop as the PATH message is forwarded.
-
- Refresh Period
-
- This field specifies the refresh timeout period in
- milliseconds. See Section 3.3 below.
-
- State TTL Time
-
- This field specifies the time-to-live for soft state,
- in milliseconds. It determines the cleanup timeout
- period; see Section 3.3 below.
-
- See Section 3.2 below.
-
- SD Count
-
- Count of Sender Descriptors that follow.
-
- Sender Descriptor List
-
- A list of Sender Descriptors (see below). The order
- of entries in this list is irrelevant.
-
-
- Each sender must periodically send a PATH message containing a
- single Sender Descriptor describing its own data stream. These
- messages are addressed to the uni-/multicast destination
- address for the session, and they are forwarded to all
- receivers, following the same paths as a data packet from the
- same sender. PATH messages are received and processed locally
- to create path state at each intermediate router along the
- path.
-
- If an error is encountered while processing a PATH message, an
- RSVP ERR message is sent to all the sender hosts listed in the
- Sender Descriptor List.
-
- PATH messages are distributed from senders to receivers along
- the exact paths that the data will traverse, using uni-
- /multicast routing. This distribution actually takes place
- hop-by-hop, allowing RSVP in each router along the path to
- observe and modify the message. Routing of PATH messages is
- based on the sender address(es) from the Sender Descriptor(s),
-
-
-
- Zhang, Braden et al Expires: April 1994 [Page 20]
-
-
-
-
- Internet Draft RSVP Specification October 1993
-
-
- not the IP source address. This is necessary to prevent loops;
- see Section 3.2.
-
- Each Sender Descriptor consists of a sender template that
- defines the format of data packets and a corresponding Flowspec
- that describes the traffic characteristics. The template is
- composed of an explicit IP address plus a variable-length
- mask-and-value pair VF, in the following format:
-
-
- +-----------+-----------+-----------+-----------+
- | Sender IP Address |
- +-----------+-----------+-----------+-----------+
- | VFlength | VFoffset |
- +-----------+-----------+-----------+-----------+ ---
- | V: VF Value Part | 4*VFlength
- / / octets
- / /
- +-----------+-----------+-----------+-----------+ ---
- | M: VF Mask Part | 4*VFlength
- / / octets
- / /
- +-----------+-----------+-----------+-----------+ ---
-
-
- The value M and the mask V each have length 4*VFlength octets.
- M and V define a filter using a simple mask-and-match algorithm
- applied to the packet at 4*VFoffset octets from the beginning
- with the internet layer header. The VF part should not include
- the sender IP address or DestAddress; RSVP will effectively
- embed these explicit addresses into the template before using
- it to validate a filterspec.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Zhang, Braden et al Expires: April 1994 [Page 21]
-
-
-
-
- Internet Draft RSVP Specification October 1993
-
-
- 3.1.2 Resv Message
-
- RESV messages are sent from receivers to senders along reverse
- paths established by PATH messages.
-
- 0 1 2 3
- +-------------+-------------+-------------+-------------+
- | Vers | Type | Flags | RSVP Checksum |
- +-------------+-------------+-------------+-------------+ ---
- | DestAddress | Session
- +-------------+-------------+-------------+-------------+
- | DestSID | Socket
- +-------------+-------------+-------------+-------------+ ---
- | Refresh Period |
- +-------------+-------------+-------------+-------------+
- | State TTL Time |
- +-------------+-------------+-------------+-------------+
- | RecvAddress |
- +-------------+-------------+-------------+-------------+
- | Dynamic Reservation Count | FD Count |
- +-------------+-------------+-------------+-------------+
- | Flow Descriptor List |
- +-------------+-------------+-------------+-- ...
-
- The fields are the same as defined earlier for a PATH message,
- except for the following:
-
-
- IP Fields:
-
- IP Source Address
-
- The IP address of the host or router sending this
- message.
-
- IP Destination Address
-
- The IP address of the next-hop router or host to
- which this message is being sent.
-
-
- RSVP Fields:
-
- Type
-
- 2 = Resv Message
-
- Flags
-
-
-
- Zhang, Braden et al Expires: April 1994 [Page 22]
-
-
-
-
- Internet Draft RSVP Specification October 1993
-
-
- 1 = No-Refresh
-
- A RESV message received with this flag bit on
- will be forwarded without (further) merging, the
- TTL timer for the reservation state to which it
- refers will not be reset (as if no refresh
- message had been received), and no hop-by-hop
- refresh message will be generated during the
- current refresh period for the receiver
- specified by RecvAddress. However, if there is
- no reservation state for this receiver or no
- path state for this session, a Resv message
- containing this flag bit will be ignored.
-
- For further discussion of the use of this bit,
- see Section 3.3 section below.
-
- The following flag bits indicate the reservation
- style.
-
- 2 = Fixed-Filter
-
- 4 = Dynamic-Filter
-
- RecvAddress
-
- The IP address of the receiver that originated this
- message.
-
- Dynamic Reservation Count
-
- The number of channels to be reserved, for a
- Dynamic-Filter style reservation.
-
- If the ResvStyle is Dynamic-Filter, this integer
- value must be constant and equal or greater than (FD
- Count). For other ResvStyles, this field must be
- zero.
-
- FD Count
-
- Count of Filter Specs in the Flow Descriptor List.
-
- Flow Descriptor List
-
- A list of Flow Descriptors, i.e., (Filterspec,
- flowspec) pairs, to define individual reservations
- for Fixed-Filter and Dynamic-Filter styles. The
-
-
-
- Zhang, Braden et al Expires: April 1994 [Page 23]
-
-
-
-
- Internet Draft RSVP Specification October 1993
-
-
- first entry in the list may have special meaning (see
- below); the order of later entries is irrelevant.
-
-
- Each Flow Descriptor has the following form:
-
-
- +-------------+-------------+-------------+----------//-+
- | FiltSLen | Filter Spec ... |
- +-------------+-------------+-------------+----------//-+
- | FlowSLen | ... Flow Spec ... |
- +-------------+-------------+-------------+----------//-+
-
- Here FiltSLen and FlowSLen are one-octet fields specifying the
- lengths in octets (including the length byte) of the Filterspec
- and flowspec, respectively.
-
- A Wildcard-Filter style reservation is encoded as a special
- case of a Fixed-Filter reservation: a single Fixed-Filter
- channel in which the Filterspec specifies the wild-card filter,
- i.e., it selects packets from all senders Si to the given
- session socket.
-
- The following specific rules hold for different reservation
- styles.
-
- o Wildcard-Filter
-
- To obtain Wildcard-Filter service, set FD Count = 1 and
- include a single Flow Descriptor whose Filterspec part is
- a wild card, i.e., selects all senders. and whose
- flowspec part defines the desired flow parameters.
-
- o Fixed-Filter
-
- Include a list of FD Count >= 1 Flow Descriptors, each
- defining a sender Filterspec and a corresponding flowspec.
-
- o Dynamic-Filter
-
- Include max(1, FD Count) Flow Descriptors in the message.
- Here the FD Count specifies the number of sender
- Filterspecs that are included. If DC is the Dynamic
- Reservation Count, then DC >= FD Count >= 0.
-
- The Flowspec part of the first Flow Descriptor defines the
- desired size of all the DC channels that are reserved.
- The Flowspec parts of later Flow Descriptors (if any) are
-
-
-
- Zhang, Braden et al Expires: April 1994 [Page 24]
-
-
-
-
- Internet Draft RSVP Specification October 1993
-
-
- ignored.
-
- 3.1.3 Err Message
-
- 0 1 2 3
- +-------------+-------------+-------------+-------------+
- | Vers | Type | Flags | RSVP Checksum |
- +-------------+-------------+-------------+-------------+ ---
- | DestAddress | Session
- +-------------+-------------+-------------+-------------+
- | DestSID | Socket
- +-------------+-------------+-------------+-------------+ ---
- | Error Code | Error Value | List Count |
- +-------------+-------------+-------------+-------------+
- | Sender|Flow Descriptor List |
- +-------------+-------------+-------------+-- ...
-
- The fields are the same as in a PATH message, defined earlier,
- except for the following:
-
-
- RSVP Fields:
-
- RSVPType
-
- 4 = Err message
-
- Flags
-
- 0xxxxxxx = Towards receiver(s)
-
- 1xxxxxxx = Towards sender(s)
-
- Error Code
-
- A one-octet error description.
-
- 01 = No path information for this Resv (R)
-
- 02 = No Sender information for this Resv (R)
-
- There is path information, but it does not
- include the sender specified in one or more
- of the Filterspecs listed in the Resv
- messager.
-
- 03 = Insufficient memory (S,R)
-
-
-
-
- Zhang, Braden et al Expires: April 1994 [Page 25]
-
-
-
-
- Internet Draft RSVP Specification October 1993
-
-
- 04 = Incorrect Dynamic Reservation Count (R)
-
- Dynamic Reservation Count is zero or less
- than FD Count.
-
- 05 = Reservation problem (R)
-
- The Error Value octet an error code
- specific to a lower-level routine.
- Possible reasons include: not enough
- resource available, flowspec syntax error,
- flowspec value error (internal
- inconsistencies of values), or Flowspec
- feature not supported.
-
- 07 = Unknown RSVPType field.
-
- 08 = Unknown RSVP version.
-
- 09 = FD Count Wrong
-
- FD Count does not match length of message.
-
-
- Error Value
-
- Specific cause of the error described by the Error
- Code.
- Meanings are generally defined outside RSVP.
-
-
- Sender|Flow Descriptor List
-
- Optional list of Sender Descriptors (towards sender)
- or Flow Descriptors (towards receiver) indicating
- which message triggered the error.
-
-
- The message may include a list of one or more descriptors to
- which the same error applies. An acceptable implementation may
- send a single descriptor per ERR message, and may therefore
- send multiple ERR messages as the result of one PATH or RESV
- message.
-
- If an error is encountered while processing a RESV message, an
- RSVP ERR message must be sent to all receivers responsible for
- the reservation. However, in the case of shared Fixed-Filter
- reservations, the node that detects the error does not have a
-
-
-
- Zhang, Braden et al Expires: April 1994 [Page 26]
-
-
-
-
- Internet Draft RSVP Specification October 1993
-
-
- record of all the responsible receivers; the merging process
- downstream will have dropped all but one of the receiver
- identities. Therefore, the Err message is addressed to the
- session DestAddress and uni-/multicast to all receivers
- downstream from the node detecting the error.
-
- This may deliver the ERR message to irrelevant receivers as
- well as all relevant ones. The API in the receiver hosts is
- therefore asked to filter such ERR messages, delivering them
- only to those applications that have made a reservation for the
- sender specified in the message.
-
- 3.1.4 Tear Message
-
- The TEARDOWN message is intended to force state to be deleted
- immediately, without waiting for the cleanup timeout period.
- It is an optimization, to allow resources to be freed more
- quickly. However, like the other RSVP messages, it is not
- reliably delivered.
-
- State can only be removed by TEARDOWN if it is not shared. In
- particular, Wildcard-Filter and Fixed-Filter reservations may
- be shared among multiple receivers, and due to merging RSVP
- does not keep track of all the responsible receivers; in these
- cases, teardown is not possible.
-
- A more complete definition of TEARDOWN messages is future work.
-
- 3.2 Avoiding Message Loops
-
- RSVP routes its control messages, and every routing procedure must
- avoid looping packets. The merging of RSVP messages delays
- forwarding at each node for up to one refresh period. This may
- avoid high-speed loop, but there can still be "slow" loops,
- clocked by the refresh period; the effect of such slow loops is to
- keep state active forever, even if the end nodes have ceased
- refreshing it. RSVP uses the following rules to prevent looping
- messages.
-
-
- 1. When an RSVP message is received on through particular
- incoming Interface F, the message must not be forwarded out F
- as an outgoing interface. This implies that RSVP must keep
- track of the interface through which each message is
- received, to avoid forwarding it out that interface. Note
- that, although RSVP distinguishes incoming from outgoing
- interfaces, in many cases the same physical interface will
- play both roles.
-
-
-
- Zhang, Braden et al Expires: April 1994 [Page 27]
-
-
-
-
- Internet Draft RSVP Specification October 1993
-
-
- 2. When a PATH message is received, a route must be computed for
- each of its sender Flow Descriptors. These routes, obtained
- from the uni/multicast routing table, generally depend upon
- the (sender host address, destination address) pairs. Each
- route consists of a list of outgoing interfaces; these lists
- (with the incoming interfaces deleted by rule (1)) are used
- to create merged PATH messages to be forwarded through the
- outgoing interfaces.
-
- Assuming that multicast routing is free of loops, PATH
- messages cannot loop even in a topology with cycles.
-
- Since PATH messages don't loop, they create path state
- defining a loop-free path to each sender. As a result, RESV
- messages directed to particular senders cannot loop.
- However, this cannot protect against looping RESV messages
- that are directed towards all senders ("wildcard" sender).
- The following three rules are needed for this purpose.
-
- 3. A RESV message whose RecvAddress matches one of the IP
- addresses of the local node must be discarded without
- processing.
-
- 4. Each RESV message carries a receiver address. When the
- choice of address to place in a merged RESV message is
- otherwise arbitrary, RSVP must use the IP address that is
- numerically largest.
-
- 5. When a RESV message is received, the Reverse Path Forwarding
- rule is applied to the receiver address in the message: the
- message is discarded unless it arrived on the interface that
- is the preferred route to the receiver.
-
- Figure 9 illustrates the effect of the rule (1) applied to RESV
- messages. It shows a transit router, with one sender and one
- receiver on each side; interfaces a and c therefore are both
- outgoing interfaces and physical previous hops. Both receivers
- are making a Wildcard-Filter style reservation, in which the RESV
- message is to be forwarded to all previous hops for senders in the
- group, with the exception of the interface through which it
- arrived.
-
-
-
-
-
-
-
-
-
-
- Zhang, Braden et al Expires: April 1994 [Page 28]
-
-
-
-
- Internet Draft RSVP Specification October 1993
-
-
- ________________
- a | | c
- ( R1, S1 ) <----->| Router |<-----> ( R2, S2 )
- |________________|
-
- Send & Receive on (a) | Send & Receive on (c)
- |
- WF(R2; *{3B}) <-- (a) | (c) <-- WF(R2; *{3B})
- |
- WF(R1; *{4B}) --> (a) | (c) --> WF(R1; *{4B})
- |
- |
- Reserve on (a) | Reserve on (c)
- __________ | __________
- | * {4B} | | | * {3B} |
- |__________| | |__________|
- |
-
- Figure 9: Example: Rule (1) for Preventing Loops.
-
-
-
- 3.3 Soft State Management
-
- The RSVP state associated with a session in a particular node is
- divided into atomic elements that are created, refreshed, and
- timed out independently. The atomicity is determined by the
- requirement that any sender or receiver may enter or leave the
- session at any time, and its state should be created and timed out
- independently.
-
- Management of RSVP state is complex because there is not generally
- a one-to-one correspondence between state carried in RSVP control
- messages and the resulting state in nodes. Due to merging, a
- single message contain state referring to multiple stored
- elements. Conversely, due to reservation sharing, a single stored
- state element may depend upon (typically, the maximum of) state
- values received in multiple control messages.
-
- For each element, there are two time parameters controlling the
- maintenance of soft state: the refresh period R and the TTL
- (time-to-live) value T. R specifies the period between successive
- refresh messages over the same link. T controls how long state
- will be retained after refreshes stop appearing.
-
- PATH and RESV messages specify both R and T. When messages are
- merged and forwarded to the next hop, R should be the minimum R
- that has been received, and T should be the maximum T that has
-
-
-
- Zhang, Braden et al Expires: April 1994 [Page 29]
-
-
-
-
- Internet Draft RSVP Specification October 1993
-
-
- been received. Thus, the largest T determines how long state is
- retained, and the smallest R determines the responsiveness of RSVP
- to route changes. In the first hop, they are expected to be
- equal. The RSVP API should set a configurable default value,
- which can be overridden by an application for a particular
- session.
-
- To avoid gaps in user service due to lost RSVP messages, RSVP
- should be forgiving about missing refresh messages. A node should
- not discard an RSVP state element until K * Tmax has elapsed
- without a refresh message, where Tmax is the maximum of the T
- values it has received. K is some small integer; K-1 successive
- messages may be lost before state is deleted. Currently K = 3 is
- suggested.
-
- Let X indicate a particular message type (either "Path" or "Resv")
- and a particular session. Then each X message from node a to node
- b carries refresh period Rab and TTL time Tab.
-
- o As X messages arrive at node b, the node computes and saves
- both the min over the Rab values (min(Rab)) and the max over
- the Tab values (max(Tab)) from these messages.
-
- o The node uses K * max(Tab) as its cleanup timeout interval.
-
- o The node uses min(Rab's) as the refresh period.
-
- o Each refresh message forwarded by node b to node c has Tbc =
- max(Tab) and Rbc = min(Rab)
-
- o A node may impose an upper bound Tmax and a lower bound Rmin,
- set by configuration information, and enforce: Rmin <= R <= T
- <= Tmax.
-
- When a sender or receiver stops sending refreshes or a route
- change isolates a part of the path, the state in the nodes times
- out. However, we wish to avoid delaying the timeout of each hop
- by approximately one refresh period from the timeout of the
- preceding hop, i.e., avoid making the timeout time for the last
- node in the path increase linearly with the number of hops. This
- is avoided by the No-Refresh bit in PATH and RESV messages.
-
- o When a node has received no refresh message at the end of its
- current refresh period, it sends a (non-)refresh message with
- the No-Refresh bit on.
-
- o A message with the No-Refresh bit is forwarded immediately
- hop-by-hop to the end of the path (unless it is lost).
-
-
-
- Zhang, Braden et al Expires: April 1994 [Page 30]
-
-
-
-
- Internet Draft RSVP Specification October 1993
-
-
- o At each node, the receipt of a message with the No-Refresh
- bit on suppresses sending a refresh message at the end of the
- current refresh period.
-
- o Receipt of a message with the No-Refresh bit on does not
- reset the T timer for the corresponding element(s).
-
- In a perfect world these No-Refresh messages will cause all
- following nodes to time out at the same time. Due to small
- variations in timing, the actual behavior may be more complex, but
- all nodes should time out at approximately the same time.
-
- The receiver should be conservative about reacting to certain
- error messages. For example, during a route change a receiver may
- get back "No Path" error messages until Path messages have
- propagated along the new route.
-
- When RESV messages are merged, the message that is forwarded will
- carry the largest flowspec and the corresponding RecvAddress from
- the merged messages. If the same largest flowspec occurs in two
- or more merged messages, the resulting message should carry the
- numerically largest RecvAddress. This choice will ensure success
- of loop detection using the RecvAddress field.
-
- 3.4 Sending RSVP Messages
-
- Under overload conditions, lost RSVP control messages could cause
- the loss of resource reservations. It recommended that routers be
- configured to give a preferred class of service to RSVP packets.
- RSVP should not use significant bandwidth, but its delay needs to
- be controlled.
-
- An RSVP PATH or RESV message consists of a small root segment (24
- or 28 bytes) followed by a list of descriptors. The descriptors
- are bulky and there could be a large number of them, resulting in
- potentially very large messages. IP fragmentation is inadvisable,
- since it has bad error characteristics. Instead, RSVP-level
- fragmentation should be used. That is, a message with a long list
- of descriptors will be divided into segments that will fit into
- individual datagrams, each carrying the same root fields. Each of
- these messages will be processed at the receiving node, with a
- cumulative effect on the local state. No explicit reassembly is
- needed.
-
- 3.5 Automatic Tunneling
-
- It is impractical to deploy RSVP (or any protocol) at the same
- moment throughout the Internet, and RSVP may never be deployed
-
-
-
- Zhang, Braden et al Expires: April 1994 [Page 31]
-
-
-
-
- Internet Draft RSVP Specification October 1993
-
-
- everywhere. RSVP must therefore provide correct protocol
- operation even when two RSVP-capable routers are joined by an
- arbitrary "cloud" of non-RSVP routers.
-
- RSVP will automatically tunnel through such a non-RSVP cloud.
- Both RSVP and non-RSVP routers forward PATH messages towards the
- destination address using their local uni-/multicast routing
- table. Therefore, the routing of Path messages will be
- unaffected by non-RSVP routers in the path. When a PATH message
- traverses a non-RSVP cloud, the copies that emerge will carry as a
- Previous Hop address the IP address of the last RSVP-capable
- router before entering the cloud. This will cause effectively
- construct a tunnel through the cloud for RESV messages, which will
- be forwarded directly to the next RSVP-capable router on the
- path(s) back towards the source.
-
- This automatic tunneling capability of RSVP has a cost: a PATH
- message must carry the session DestAddress as its IP destination
- address; it cannot be addressed hop-by-hop. As a result, each
- RSVP router must have a small change in its multicast forwarding
- path to recognize RSVP messages (by the IP protocol number) and
- intercept them for local processing. See Section 3.6.5 below.
-
- (There is a potential defect in tunneling. Merged PATH messages
- can carry information for a list of senders, and since multicast
- routing depends in general upon the sender, it is not possible to
- ensure that all the non-RSVP routers along the tunnel will be able
- to route the packet properly. The effect turns out to be that
- tunnels may distribute path information to RSVP routers where it
- should not go, which may in turn lead to unused reservations at
- these routers. This is hoped to be an acceptable defect.)
-
- Of course, if an intermediate cloud does not support RSVP, it is
- unable to perform resource reservation. In this case, firm end-
- to-end service guarantees cannot be made. However, if there is
- sufficient excess capacity through such a cloud, acceptable and
- useful realtime service will still be possible.
-
- 3.6 Interfaces
-
- 3.6.1 Reservation Parameters
-
- The Flowspec format is currently specific to the CSZ packet
- scheduler [CSZ92]. The parameters are:
-
- o QoS Type (Guaranteed, Predictive, ...)
-
- o Max end-to-end delay
-
-
-
- Zhang, Braden et al Expires: April 1994 [Page 32]
-
-
-
-
- Internet Draft RSVP Specification October 1993
-
-
- o Average data rate (bits/ms)
-
- o Token bucket depth (bits)
-
- o Global share id <---- ?
-
- Although a filterspec may be in part opaque, RSVP must be able
- to extract the sender IP address (or wildcard) from it, and to
- compare it with a sender template field in the path state. For
- compactness and simplicity of processing, this version of the
- RSVP specification defines an RSVP Filterspec to be composed of
- an explicit IP address plus a variable-length mask-and-value
- pair VF, in the following format:
-
-
- +-----------+-----------+-----------+-----------+
- | Sender IP Address |
- +-----------+-----------+-----------+-----------+
- | VFlength | VFoffset |
- +-----------+-----------+-----------+-----------+ ---
- | V: VF Value Part | 4*VFlength
- / / octets
- / /
- +-----------+-----------+-----------+-----------+ ---
- | M: VF Mask Part | 4*VFlength
- / / octets
- / /
- +-----------+-----------+-----------+-----------+ ---
-
-
- The value M and the mask V each have length 4*VFlength octets.
- M and V define a filter using a simple mask-and-match algorithm
- applied to the packet at 4*VFoffset octets from the beginning
- with the transport-layer header. VFlength can be zero, in
- which case VFoffset is ignored. A "wildcard" Filterspec that
- will match any sender or receiver has the IP address and the
- VFlength both zero. The contents of M and V are opaque to
- RSVP. The VF part may or may not include the sender IP address
- or DestAddress; RSVP will embed these explicit addresses into
- the filterspec before handing it to traffic control. In
- general, RSVP cannot interpret the contents of the V and M
- fields, since they may depend upon protocols above the Internet
- layer.
-
- There are many possible filters that cannot be expressed using
- a simple mask and value pair. A compact and general filter
- encoding is for further study.
-
-
-
-
- Zhang, Braden et al Expires: April 1994 [Page 33]
-
-
-
-
- Internet Draft RSVP Specification October 1993
-
-
- 3.6.2 Application/RSVP Interface
-
- This section describes a generic API from an application to an
- RSVP control process. The details of a real interface may be
- operating-system dependent; the following can only suggest the
- basic functions to be performed. In particular, some of these
- calls cause information to be returned asynchronously.
-
- An application could directly send and receive RSVP messages,
- just as an application can do file transfer using UDP.
- However, we envision that many applications will not want to
- know the details of RSVP operation, nor to provide the timing
- services necessary to keep the state refreshed, any more than
- an application wants to handle TCP retransmission timeouts.
- Therefore, a host using RSVP may be expected to have an RSVP
- control process to handle these functions. Using local IPC,
- applications will register or modify resource requests with
- this process and receive notifications of success or change of
- conditions.
-
-
- 1. Sender
-
- Call: SENDER( local socket, session socket, flowspec) ->
- sid
-
- This call is made by a sender host for each sender socket,
- to initiate RSVP processing. Wildcards may be inserted
- for the IP address and/or RSVP Id in the local socket, in
- which case the local system will choose appropriate
- values. The session socket consists of the uni-/multicast
- address of the receiving host(s) and the RSVP Id to use
- for this session.
-
- The SENDER call returns immediately with a local session
- identifier "sid", which may be used in subsequent calls.
- A local session control block is created and initialized,
- and the host begins sending periodic PATH messages.
-
- 2. Receiver
-
- Call: RECVER( local socket ) -> sid
-
- This call is made by a receiver host for each receiver
- socket, to initiate RSVP processing. The local socket
- consists of the uni-/multicast address for the desired
- session, and an RSVP Id.
-
-
-
-
- Zhang, Braden et al Expires: April 1994 [Page 34]
-
-
-
-
- Internet Draft RSVP Specification October 1993
-
-
- The RECVER call returns immediately with a local session
- identifier "sid", which may be used in subsequent calls.
- A local session control block is created and initialized,
- and the host begins listening for a PATH message.
-
- Following this call, data may be returned asynchronously,
- containing the flowspecs and associated foreign sockets
- for sender hosts. Error message(s) may also be returned
- asynchronously.
-
- 3. Reserve
-
- Call: RESERVE( sid, style, Flowspec, Filterspec-list)
-
- A receiver uses this call to make a resource reservation.
- Style is an integer index indicating the reservation
- style.
-
- The first RESERVE call following a RECVER call will
- initiate the periodic transmission of RESV messages. A
- later RESV call may be given to modify the parameters of
- the earlier call; however, this may result in Admission
- Control failure.
-
- The RESERVE call returns immediately. Following this
- call, an error message or a data reply from the earlier
- RECVER call may be returned asynchronously.
-
- 4. Close
-
- Call: CLOSE( sid )
-
- This call may be made by either sender or receiver to
- terminate RSVP state for the given session id. It will
- delete local state and cease sending refreshes, allowing
- distributed state to time out.
-
- 5. Teardown
-
- Call: TEARDOWN( sid )
-
- This call sends TEARDOWN messages to actively remove state
- from the routers, and then issues a CLOSE.
-
- 3.6.3 RSVP/Traffic Control Interface
-
- In each router and host, enhanced QoS is achieved by a group of
- inter-related functions: a packet classifier, an admission
-
-
-
- Zhang, Braden et al Expires: April 1994 [Page 35]
-
-
-
-
- Internet Draft RSVP Specification October 1993
-
-
- control module, and a packet scheduler. We group these
- functions together under the heading traffic control. RSVP
- uses the interfaces in this section to invoke the traffic
- control functions.
-
- ((XXX Need some way to pass the Drop flag))
-
-
- 1. Make a Reservation
-
- Call: Rhandle = TCAddFlow( Flowspec, Drop_flag,
- [Session-Filterspec [, Sender-Filterspec]] )
-
- Returns an internal handle Rhandle for subsequent
- references to this reservation.
-
- This call passes Flowspec to admission control and returns
- an error code if Flowspec is malformed or if the requested
- resources are unavailable. Otherwise, it establishes a
- new reservation channel corresponding to Rhandle, and if
- Filterspecs are supplied, installs a corresponding filter
- in the classifier.
-
- For Fixed-Filter reservation requests, RSVP knows about
- sharing and calls AddFlow only for distinct source pipes.
-
- For Dynamic-Filter reservation requests: suppose that the
- RESV message specifies a Dynamic Reservation Count = D,
- and F flow descriptors, where 0 <= F <= D. Then RSVP
- calls AddFlow D times, and D-F of those calls have null
- filterspecs.
-
- 2. Switch a Channel
-
- Call: TCModFilter( Rhandle, [new Filterspec])
-
- This call replaces the filter without calling admission
- control. It may replace an existing filter with no
- filter, modify an existing filter, or replace no filter by
- a filter.
-
- 3. Modify Flowspec
-
- Call: TCModFlowspec( Rhandle, oldFlowspec, newFlowspec)
-
- Here newFlowspec may be larger or smaller than
- oldFlowspec.
-
-
-
-
- Zhang, Braden et al Expires: April 1994 [Page 36]
-
-
-
-
- Internet Draft RSVP Specification October 1993
-
-
- 4. Delete Flow
-
- Call: TCDeleteFlow( Rhandle )
-
- This call kills the reservation and reduces the reference
- count of, and deletes if the count is zero, any filter
- associated with this handle.
-
- 5. Initialize
-
- Call: TCInitialize( )
-
- This call is used when RSVP initializes its state, to
- clear out all existing classifier and/or packet scheduler
- state.
-
- 3.6.4 RSVP/Routing Interface
-
- An RSVP implementation needs the following support from the
- packet forwarding and routing mechanism of the node.
-
-
- o Promiscuous receive mode for RSVP messages
-
- Any datagram received for IP protocol 46 is to be diverted
- to the RSVP program for processing, without being
- forwarded.
-
- o Route discovery
-
- RSVP must be able to discover the route(s) that the
- routing algorithm would have used for forwarding a
- specific datagram.
-
- GetUCRoute( DestAddress ) -> NextHop, Interface
-
- GetMCRoute( SrcAddress, DestAddress ) -> Interface
-
- o Outgoing Link Specification
-
- RSVP must be able to force a (multicast) datagram to be
- sent on a specific outgoing virtual link, bypassing the
- normal routing mechanism. A virtual link may be a real
- outgoing link or a multicast tunnel.
-
- This is necessary because RSVP sends different copies of
- outgoing path messages on different links, even though all
- of them use the same source and destination addresses.
-
-
-
- Zhang, Braden et al Expires: April 1994 [Page 37]
-
-
-
-
- Internet Draft RSVP Specification October 1993
-
-
- o Discover (Virtual) Interface List
-
- RSVP must be able to learn what virtual interfaces exist.
-
-
- 4. ACKNOWLEDGMENTS
-
- Lixia Zhang, Scott Shenker, Deborah Estrin, Dave Clark, Sugih Jamin,
- Shai Herzog, Steve Deering, Bob Braden, and Daniel Zappala have all
- made contributions to the design of RSVP. We are grateful to Jamin
- and Herzog for prototype implementations. The original protocol
- concepts for RSVP arose out of discussions in meetings of the End-
- to-End Research Group.
-
- REFERENCES
-
- [CSZ92] Clark, D., Shenker, S., and L. Zhang, "Supporting Real-Time
- Applications in an Integrated Services Packet Network: Architecture
- and Mechanisms", Proc. SIGCOMM '92, Baltimore, MD, August 1992.
-
- [ISInt93] Braden, R., Clark, D., and S. Shenker, "Integrated Services
- in the Internet Architecture: an Overview", working draft, October
- 1993.
-
- [IServ93] Shenker, S., Clark, D., and L. Zhang, "A Service Model for an
- Integrated Services Internet", working draft, October 1993.
-
- [RSVP93] Zhang, L., Deering, S., Estrin, D., Shenker, S., and D.
- Zappala, "RSVP: A New Resource ReSerVation Protocol", IEEE Network,
- September 1993.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Zhang, Braden et al Expires: April 1994 [Page 38]
-
-